<?php

class TubosController extends AppController
{

    public $uses = array(
        'Tubo',
        'Almacene',
        'Movimientostubo',
        'Cortestubo',
        'Sucursale');
    public $layout = 'imprenta';

    public function index($idCategoria = null)
    {

        $listadoTubos = $this->Tubo->find('all', array('recursive' => -1, 'conditions' => array('Tubo.categoria_id' => $idCategoria)));
        $this->set(compact('listadoTubos', 'idCategoria'));
    }

    public function listado($idCategoria = null)
    {

//        $listadoProductos = $this->Cortestubo->find('all', array(
//            'recursive' => -1,
//            'conditions' => array('Cortestubo.categoria_id' => $idCategoria),
//            'limit' => 50,
//            'order' => 'Cortestubo.id DESC'
//        ));
//        $this->set(compact('listadoProductos', 'idCategoria'));

        $categoria = $idCategoria;
        $sucursalUsuario = $this->Session->read('Auth.User.sucursale_id');

        $datosTubo = $this->Tubo->find('first', array('recursive' => -1, 'conditions' => array('Tubo.id' => $idTubo)));

        $tuboSinCortar = $this->Movimientostubo->find('first', array(
            'recursive' => 0,
            'conditions' => array('Movimientostubo.tubo_id' => $idTubo),
            'order' => 'Movimientostubo.id DESC'));
        //debug($tuboSinCortar);exit;
        $dcs = $this->Sucursale->find('list', array('fields' => array('Sucursale.id', 'Sucursale.nombre')));

        $rolUsuario = $this->Session->read('Auth.User.role');

        if ($rolUsuario == 'admin')
        {

            $cortesTubo = $this->Cortestubo->find('all', array(
                'recursive' => 0,
                'limit' => 20,
                'order' => 'Cortestubo.id DESC',
                'conditions' => array(
                    'Cortestubo.categoria_id' => $idCategoria,
                    'NOT' => array(
                        'Cortestubo.estado' => array('A', 'N', 'V', 'P')
                    )
                )
            ));

            $tubosEnteros = $this->Movimientostubo->find('all', array(
                'recursive' => 0,
                'conditions' => array(
                    'Movimientostubo.categoria_id' => $idCategoria,
                    'NOT' => array(
                        'Movimientostubo.estado' => array('C', 'A', 'B', 'N')
                    )
                )
            ));
        } else
        {
            $cortesTubo = $this->Cortestubo->find('all', array(
                'recursive' => 0,
                'limit' => 50,
                'order' => 'Cortestubo.id DESC',
                'conditions' => array(
                    'Cortestubo.tubo_id' => $idTubo,
                    'Cortestubo.sucursale_id' => $sucursalUsuario,
                    'NOT' => array(
                        'Cortestubo.estado' => array('A', 'N', 'V', 'P')
                    )
                )
            ));

            $tubosEnteros = $this->Movimientostubo->find('all', array('recursive' => 0, 'conditions' => array(
                    'Movimientostubo.tubo_id' => $idTubo,
                    'Movimientostubo.sucursale_id' => $sucursalUsuario,
                    'NOT' => array(
                        'Movimientostubo.estado' => array('C', 'A', 'B', 'N')
                    )
            )));
        }

        $tubosEnterosSucursales = $this->Movimientostubo->find('count', array('conditions' => array('Movimientostubo.sucursale_id' => $sucursalUsuario)));
        $tipos = $this->Tubo->find('list', array('fields' => 'Tubo.nombre'));
        $dcs = $this->Sucursale->find('list', array('fields'=>'Sucursale.nombre'));
        $sucursales = $this->Sucursale->find('list', array('fields' => 'Sucursale.nombre'));
        //debug($tipos);exit;
        $this->set(compact('tuboSinCortar', 'cortesTubo', 'datosTubo', 'categoria', 'sucursales', 'tipos', 'dcs'));
    }

    public function verdetalle($idTubo = null)
    {

        $sucursalUsuario = $this->Session->read('Auth.User.sucursale_id');

        $datosTubo = $this->Tubo->find('first', array('recursive' => -1, 'conditions' => array('Tubo.id' => $idTubo)));

        $tuboSinCortar = $this->Movimientostubo->find('first', array(
            'recursive' => 0,
            'conditions' => array('Movimientostubo.tubo_id' => $idTubo),
            'order' => 'Movimientostubo.id DESC'));

        $dcs = $this->Sucursale->find('list', array('fields' => array('Sucursale.id', 'Sucursale.nombre')));

        $rolUsuario = $this->Session->read('Auth.User.role');
        if ($rolUsuario == 'admin')
        {

            $cortesTubo = $this->Cortestubo->find('all', array(
                'recursive' => 0,
                'limit' => 20,
                'conditions' => array(
                    'Cortestubo.tubo_id' => $idTubo,
                    'NOT' => array(
                        'Cortestubo.estado' => array('A', 'N', 'V', 'P')
                    )
                )
            ));

            $tubosEnteros = $this->Movimientostubo->find('all', array('recursive' => 0, 'conditions' => array('Movimientostubo.tubo_id' => $idTubo, 'NOT' => array
                        ('Movimientostubo.estado' => array(
                            'C',
                            'A',
                            'B',
                            'N')))));
        } else
        {
            $cortesTubo = $this->Cortestubo->find('all', array('recursive' => 0, 'conditions' => array(
                    'Cortestubo.tubo_id' => $idTubo,
                    'limit'=>20,
                    'Cortestubo.sucursale_id' => $sucursalUsuario,
                    'NOT' => array('Cortestubo.estado' => array(
                            'A',
                            'N',
                            'V',
                            'P')))));

            $tubosEnteros = $this->Movimientostubo->find('all', array('recursive' => 0, 'conditions' => array(
                    'Movimientostubo.tubo_id' => $idTubo,
                    'Movimientostubo.sucursale_id' => $sucursalUsuario,
                    'NOT' => array('Movimientostubo.estado' => array(
                            'C',
                            'A',
                            'B',
                            'N')))));
        }

        $tubosEnterosSucursales = $this->Movimientostubo->find('count', array('conditions' => array('Movimientostubo.sucursale_id' => $sucursalUsuario)));

        $this->set(compact('tuboSinCortar', 'cortesTubo', 'dcs', 'datosTubo', 'tubosEnterosSucursales', 'tubosEnteros'));
    }

    public function insertar()
    {
        if (!empty($this->request->data))
        { //si hay datos ??????????
            //debug($this->request->data);exit;
            $nombre = $this->request->data['Tubo']['nombre']; //asi se hagarra los datos de un formulario
            //debug($nombre);exit;
            $buscaNombre = $this->Tubo->find('first', array('recursive' => -1, // solo busca en la tabla
                'conditions' => array('Tubo.nombre' => $nombre) //preguntamos si existe un nombre
            ));
            //debug($buscaNombre);exit;
            if (empty($buscaNombre))
            {
                $this->request->data['Tubo']['categoria_id'] = 19;
                $this->Tubo->create();
                if ($this->Tubo->save($this->data))
                {
                    $this->Session->setFlash('Tubo registrado con Exito..');
                    $this->redirect(array('action' => 'index', 19));
                } else
                {
                    $this->Session->setFlash('No se pudo registrar!!');
                }
            } else
            {
                $this->Session->setFlash('Ya existe ese nombre registrado...!!');
                //echo 'hay mierda';
            }
        }
        $almacen = $this->Almacene->find('list', array('fields' => 'Almacene.nombre'));
        $this->set(compact('almacen'));
        //debug($almacen);exit;
    }

    public function editar($id = null)
    {
        $this->Tubo->id = $id;
        if (!$id)
        {
            $this->Session->setFlash('No existe tal registro');
            $this->redirect(array('action' => 'index'), null, true);
        }
        if (empty($this->data))
        {
            $this->data = $this->Tubo->read();
        } else
        {
            if ($this->Tubo->save($this->data))
            {
                $this->Session->setFlash('Los datos fueron modificados');
                $this->redirect(array('action' => 'index'));
            } else
            {
                $this->Session->setFlash('no se pudo modificar!!');
            }
        }
    }

    public function eliminar($id = null)
    {
        if (!$id)
        {
            $this->Session->setFlash('id Invalida para borrar');
            $this->redirect(array('action' => 'index'));
        }

        $categoria = $this->Tubo->find('first', array('recursive' => -1, 'conditions' => array('Tubo.id' => $id)));

        $verificaDatos = $this->Movimientostubo->find('count', array('conditions' => array('Movimientostubo.tubo_id' => $id)));

        $verificaDatosMedios = $this->Cortestubo->find('count', array('conditions' => array('Cortestubo.tubo_id' => $id)));
        //debug($categoria);
//        debug($verificaDatos);
//        debug($verificaDatosMedios);
        if ($verificaDatos > 0 || $verificaDatosMedios > 0)
        {
            $this->Session->setFlash('El Producto No puede ser borrado por que hay datos que lo relacionan', 'msgerror');
            $this->redirect(array('action' => 'index', $categoria['Tubo']['categoria_id']));
        } else
        {
            if ($this->Tubo->delete($id))
            {
                $this->Session->setFlash('El Producto fue borrado', 'msgbueno');
                $this->redirect(array('action' => 'index', $categoria['Tubo']['categoria_id']));
            }
        }
    }

    public function darbaja($idCorteTubo = null)
    {
        $datosCorte = $this->Cortestubo->find('first', array('recursive' => -1, 'conditions' => array('Cortestubo.id' => $idCorteTubo)));
        $data = array('id' => $idCorteTubo, 'estado' => 'A');
        //debug($datosCorte);die;
        if ($this->Cortestubo->save($data))
        {
            $this->Session->setFlash('Dado de baja correctamente', 'msgbueno');
            //$this->redirect(array('action' => 'verdetalle', $datosCorte['Cortestubo']['tubo_id']));
            $this->redirect(array('controller'=>'tubos', 'action'=>'listado', $datosCorte['Cortestubo']['categoria_id']));
        }
    }

    public function insertavalde()
    {
        if (!empty($this->request->data))
        {
            //debug($this->request->data);die;
            $nombre = $this->request->data['Tubos']['nombre'];
            $peso = $this->request->data['Tubos']['peso'];
            $this->request->data['Tubo']['nombre'] = $nombre;
            $this->request->data['Tubo']['peso'] = $peso;
            $this->request->data['Tubo']['categoria_id'] = 18;
            $this->Tubo->create();
            //debug($this->request->data['Tubo']);
            if ($this->Tubo->save($this->request->data['Tubo']))
            {
                $codigoCreado = $this->Tubo->getLastInsertID();
                $this->Session->setFlash('Liquido creado', 'msgbueno');
                $this->redirect(array(
                    'controller' => 'Tubos',
                    'action' => 'index',
                    18));
            }
        }
    }

    public function insertapurpurina()
    {
        if (!empty($this->request->data))
        {
            //debug($this->request->data);die;
            $nombre = $this->request->data['Tubos']['nombre'];
            $peso = $this->request->data['Tubos']['peso'];
            $this->request->data['Tubo']['nombre'] = $nombre;
            $this->request->data['Tubo']['peso'] = $peso;
            $this->request->data['Tubo']['categoria_id'] = 20;
            $this->Tubo->create();
            //debug($this->request->data['Tubo']);
            if ($this->Tubo->save($this->request->data['Tubo']))
            {
                $codigoCreado = $this->Tubo->getLastInsertID();
                $this->Session->setFlash('Purpurina creada', 'msgbueno');
                $this->redirect(array(
                    'controller' => 'Tubos',
                    'action' => 'index',
                    20));
            }
        }
    }

    public function ajaxbusca()
    {
        $this->layout = 'ajax';
        //debug($this->request->data);
        $codigo = $this->request->data['Tubo']['codigo'];
        $categoria = $this->request->data['Tubo']['categoria'];
        if ($categoria == 19)
        {
            $c = 'B';
        } else
        {
            $c = 'L';
        }
        $resultados = $this->Cortestubo->find('all', array(
            'conditions' => array(
                'Cortestubo.codigo LIKE' => "%" . $codigo . '%'
            )
        ));
        //debug($resultados);
        $this->set(compact('resultados'));
    }

    public function busquedalistado()
    {
        $this->layout = 'ajax';
        //debug($this->request->data);exit;
        $categoria = $idCategoria;
        $sucursalUsuario = $this->Session->read('Auth.User.sucursale_id');
        if (!empty($this->request->data['Tubo']['codigo']))
        {
            $condiciones['Cortestubo.codigo LIKE'] = '%' . $this->request->data['Tubo']['codigo'] . '%';
        }
        if (!empty($this->request->data['Tubo']['sucursal']))
        {
            $condiciones['Cortestubo.sucursale_id'] = $this->request->data['Tubo']['sucursal'];
        }
        if (!empty($this->request->data['Tubo']['tipo']))
        {
            $condiciones['Cortestubo.tubo_id'] = $this->request->data['Tubo']['tipo'];
        }
        //$condiciones['Cortestubo.categoria_id'] = $idCategoria;
        $condiciones['NOT'] = array(
            'Cortestubo.estado' => array('A', 'N', 'V', 'P')
        );


        $rolUsuario = $this->Session->read('Auth.User.role');
        //debug($condiciones);exit;
        if ($rolUsuario == 'admin')
        {

            $cortesTubo = $this->Cortestubo->find('all', array(
                'recursive' => 0,
                'limit' => 20,
                'conditions' => $condiciones
            ));
        } else
        {
            $condiciones['Cortestubo.sucursale_id'] = $sucursalUsuario;
            $cortesTubo = $this->Cortestubo->find('all', array(
                'recursive' => 0,
                'limit' => 20,
                'conditions' => $condiciones
            ));
        }

        //debug($cortesTubo);exit;
        $this->set(compact('cortesTubo'));
    }

}

?>